package 第二天变量

fun main(args: Array<String>) {

    // 常见的数值类型

//    Byte  范围  -128 ~ 127
//    Short 范围  -32768 ~ 32767
//    Int 范围  -2147483648 ~ 2147483647
//    Long 范围  -9223372036854775807L - 1L ~ 9223372036854775807L
//    Float 范围    1.4E-45F ~3.4028235E38F   小数点精确到 6位
//    Double 范围    4.9E-324 ~ 1.7976931348623157E308 小数点精确到 15 -16位
//    String  字符串   用 ""


//    Byte -128 ~ 127
    var b:Byte = 127
    b = 126  // 会覆盖
    println(b)

//    var bb:Byte = 128     // 超出范围

    // 整数
    var L:Long = 999999999999999
    println(L)

    //Float
    var fl:Float = 3.14f
    println(fl)
    // Float 精确小数点 7位
    var flj:Float = 3.1234567f
    flj =  3.12345676f //  3.1234567
    println(flj)

    // Double 小数点精确到 15位
    var dou:Double = 2.123456789123456
//    dou = 2.12345678912345678 // 2.123456789123457
    dou = -2.123456789123456
    println(dou)

var myName:String = "张三丰"


// TODO   自动类型推断  省略 生命数据类型
    var name = "张三"

    name = "王五"     // 会覆盖


    var age = 20    // 数数值类型
    var doub = 77777.22222
    var lon = 999999999999999


//    age = "asdf"   // 报错 数值类型不付


    println(name)

    // TODO 常量 ，不能作用于set，可以在get时改变数据
    val ADMIN = "大哥大"

//    ADMIN  = "asdf"  报错
    println(ADMIN)


    // TODO 最大范围

    val maxByte:Byte = Byte.MAX_VALUE
    val minByte:Byte = Byte.MIN_VALUE
    println("最大：$maxByte")
    println("最小：$minByte")

    // 进制数表示
    val er:Int = 0x11
    println(er)

    val aInt: Int = 0b0011
    println(aInt)

    val zz = 0b0011
    println(zz)
}